package co.yixiang.yshop.module.crm.controller.admin.crmbills.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDate;
import java.util.*;
import jakarta.validation.constraints.*;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 账单新增/修改 Request VO")
@Data
public class CrmBillsSaveReqVO {

    @Schema(description = "ID")
    private Long id;


    @Schema(description = "门店名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "yshop")
    @NotEmpty(message = "门店名称不能为空")
    private String storeName;

    @Schema(description = "日期 (支持时间戳或'yyyy-MM-dd'格式)", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "日期不能为空")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate billingDate;

    @Schema(description = "注册数", example = "29752")
    private Integer registerCount;

    @Schema(description = "花费")
    private BigDecimal expenditure;

    @Schema(description = "单价", example = "30820")
    private BigDecimal unitPrice;

    @Schema(description = "充值金额")
    private BigDecimal rechargeAmount;

    @Schema(description = "余额")
    private BigDecimal balance;

    @Schema(description = "男性占比 (%)")
    private BigDecimal malePercentage;

    @Schema(description = "女性占比 (%)")
    private BigDecimal femalePercentage;

    @Schema(description = "负责人ID", example = "1349")
    private Long ownerUserId;

    @Schema(description = "创建时间")
    private LocalDateTime createTime;

    @Schema(description = "修改时间")
    private LocalDateTime updateTime;

}